Computer users have various mechanisms for identifying and interacting with useful software. For example, a user might know of a specific program and choose to download that program on a personal computer, or might choose to download a specific app on a mobile device. As another example, a user might access a particular web server via a web link to interact with a server-side software program. Generally, however, these approaches require the user to have advance knowledge of specific software solutions they want to use, or to spend time searching for software that is appropriate for the problem they are trying to solve.